package br.com.velp.sudecap.service;

import br.com.velp.sudecap.dto.UsuarioParametrosConsultaDTO;
import br.com.velp.sudecap.dto.UsuarioResultadoConsultaDTO;
import br.com.velp.sudecap.entidade.*;
import java.util.List;
import org.hibernate.criterion.Order;

/**
 * <sumario>
 * <objetivo> "Rastreabilidade" </objetivo>
 * <autor> EDUARDO SANTOS DE OLIVEIRA </autor>
 * <versao>1.0.0.0</versao>
 * <data_criacao> 06.11.2012 </data_criacao>
 * <data_ultima_alteracao> N/A </data_ultima_alteracao>
 * <requisitos_afetados> RF001.02 - Listar Usuários / RF001.03 - Cadastrar Usuários </requisitos_afetados>
 * <descricao> Implementação da Interface Responsável 
 *             Pelas Operações de CRUD Referentes ao 
 *             Contexto de Usuários </descricao>
 * </sumario>
 */
public interface UsuarioService extends GenericService<Usuario> {
    
    public int contarUsuarios(UsuarioParametrosConsultaDTO parametros);
    
    public List<Usuario> buscarUsuariosPaginados(int firstResult, int maxResults, 
	    UsuarioParametrosConsultaDTO parametros, Order order);
    
    public Usuario recuperarUsuarioPorLoginSenha(String login, String senha);
    
    public List<DireitoSistema> recuperarPrivilegiosUsuario(Usuario usuario, String sistema);
    
    public List<Diretoria> carregarTodasDiretorias();
    
    public List<Local> carregarTodosLocais();
    
    public List<Setor> carregarTodosSetores();    
    
    public List<Usuario> obterTodosUsuarios();
    
    public UsuarioResultadoConsultaDTO recuperarUsuarioDTOPorLoginSenha(String login, String senha);
    
}
